#!/bin/bash

# 快速启动脚本 (Linux/macOS版本)
# 一键启动数据库和应用

# 颜色定义
RED='\033[0;31m'
GREEN='\033[0;32m'
YELLOW='\033[1;33m'
BLUE='\033[0;34m'
NC='\033[0m' # No Color

echo -e "${BLUE}========================================"
echo -e "    中山大学研究生院校企对接平台"
echo -e "        快速启动脚本"
echo -e "========================================${NC}"
echo

# 检查Docker状态
echo -e "${BLUE}检查Docker状态...${NC}"
if ! docker info >/dev/null 2>&1; then
    echo -e "${RED}Docker未运行，请启动Docker服务${NC}"
    exit 1
fi

echo -e "${GREEN}Docker运行正常${NC}"

# 检查是否已有容器运行
if ! docker ps --filter "name=sysu-giep" --format "{{.Names}}" | grep -q sysu-giep; then
    echo -e "${BLUE}未发现运行中的容器，启动数据库服务...${NC}"
    docker-compose up -d mysql redis
    
    echo -e "${BLUE}等待数据库启动...${NC}"
    sleep 15
    
    # 检查MySQL
    if ! docker exec sysu-giep-mysql mysqladmin ping -h localhost --silent 2>/dev/null; then
        echo -e "${RED}MySQL启动失败${NC}"
        exit 1
    fi
    
    echo -e "${GREEN}数据库服务启动成功${NC}"
else
    echo -e "${GREEN}数据库服务已在运行${NC}"
fi

# 检查Go环境
if ! command -v go &> /dev/null; then
    echo -e "${RED}Go环境未找到，请安装Go语言环境${NC}"
    echo "下载地址: https://golang.org/dl/"
    exit 1
fi

echo -e "${GREEN}Go环境检查通过${NC}"

# 启动应用
echo -e "${BLUE}启动应用服务...${NC}"
echo -e "${YELLOW}应用将在 http://localhost:8080 启动${NC}"
echo -e "${YELLOW}按 Ctrl+C 停止应用${NC}"
echo

go run cmd/server/main.go
